home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / northc / northc1.lzh / CHANGES < prev    next >
Text File  |  1990-09-08  |  9KB  |  247 lines

  1.  
  2.   (c) 1990 S.Hawtin.
  3.   Permission is granted to copy this file provided that:
  4.    1) It is not used for commercial gain
  5.    2) This notice is included in all copies
  6.    3) Altered copies are marked as such
  7.  
  8.   No liability is accepted for the contents of the file.
  9.  
  10.   CHANGES     within     NorthC
  11.  
  12.   This file outlines the changes that have occurred to NorthC between releases.
  13.  
  14.  Release 1.2
  15.  ***********
  16.  
  17. 1.2.1  A68K
  18.  
  19.   A new version of A68K is being used, this allows the use of two 
  20. flags,"-g" and "-q".  The "-q" flag prevents A68K from outputting as it 
  21. assembles, unless it has an error message to report.  The "-g" flag makes 
  22. all undefined symbols into globals, this means that NorthC does not need 
  23. to add lots of "XREF" calls.  The "make" program has been altered to take 
  24. advantage of the new "a68k".
  25.  
  26. 1.2.2  "top"
  27.  
  28.   The "top" optimiser has been ported from Sozobon C on FISH 314, this 
  29. will reduce the size of object code.  Because it takes some time it should 
  30. only be used when you don't mind waiting for compilations.  The code has 
  31. been slightly modified to work with NorthC.  The optimiser does not seem 
  32. to make as much difference as I would expect, I suspect that I have 
  33. introduced a bug with my changes.
  34.  
  35. 1.2.3  strtol()
  36.  
  37.   Another bug in strtol() has been fixed, when the number filled the 
  38. string the wrong value was returned.  Maybe this will fix strtol() for good.
  39.  
  40. 1.2.4  UNIX library
  41.  
  42.   A library of UNIX style functions has been implemented, these are to 
  43. make "a68k" work.  These functions are for porting programs from UNIX and 
  44. MSDOS, once the code is ported it would be best to convert it to "proper" 
  45. ANSI functions.  See the documentation file for details.
  46.  
  47. 1.2.5  More examples
  48.  
  49.   I will release NorthC 1.2 as a two disk set, this will allow me to 
  50. release more of the source code, and more examples.  I will attempt to put 
  51. all the essential code on one disk and examples on the other.  From now on 
  52. I will only release NorthC in compressed form.  The file "CONTENTS" will 
  53. shows which code is on each disk.
  54.  
  55. 1.2.6  Static arrays in functions
  56.  
  57.   The bug with static arrays in functions has now been fixed.
  58.  
  59. 1.2.7  Preprocessor directives
  60.  
  61.   The bug with #undef reported by Martin Combs has now been fixed, a new 
  62. ANSI style preprocessor directive #elif has been implemented.
  63.  
  64. 1.2.8  Clearing address registers
  65.  
  66.   The bug that caused incorrect assembly code to be generated when address 
  67. registers were set to zero has been fixed.
  68.  
  69. 1.2.9  New NorthC command line flags
  70.  
  71.   NorthC will now accept a "-C" flag, if this is set all BSS and DATA 
  72. segments will be placed in chip memory.
  73.  
  74. 1.2.10  Default console
  75.  
  76.   The default console is now "con:20/20/400/100/NorthC Program" to allow 
  77. programs more chance to run if you boot up with old disks that do not 
  78. support the "newcon:" device.
  79.  
  80. 1.2.11  "crt0.asm"
  81.  
  82.   The "crt0.asm" file has been tidied up following suggestions from Martin 
  83. Combs, thanks Martin.
  84.  
  85. 1.2.12  Mini-hello, translate and fortune
  86.  
  87.   Three new example programs have been placed on the examples disk, 
  88. "mini-hello" shows how to create small 'C' programs, "fortune" prints out 
  89. inane phrases and "translate" translates ASCII files into a format that 
  90. word processors like.
  91.  
  92. 1.2.13  4 byte integers
  93.  
  94.   I have converted the 'C' library to use 4 byte integers, I have used the 
  95. changes from Jeff Lydiat to convert the compiler to use 4 byte integers as 
  96. well.
  97.  
  98. 1.2.14  Workbench arguments
  99.  
  100.   I have changed the startup so that if a NorthC program is started from 
  101. the workbench then it will have some arguments passed in the "argc" and 
  102. "argv" arguments.  If the icon is a tool type then "argc" will be 1 and 
  103. "argv[0]" will be the name of the program, if the icon is of project type 
  104. then "argc" will be 2 and "argv[1]" will be the name of the icon that 
  105. called the tool.
  106.  
  107. 1.2.15  New variables
  108.  
  109.   The variables "_WBmsg" and "_Task" are now available for 'C' to 
  110. manipulate, "_WBmsg" contains a pointer to the workbench message if the 
  111. program was started from the workbench, "_Task" contains a pointer to the 
  112. program's task structure.
  113.  
  114. 1.2.16   _stdoutUnbuffered
  115.  
  116.   A new integer variable has been defined, _stdoutUnbuffered, if the value 
  117. of this variable is 0 then the "stdout" FILE will buffer its output.
  118.  
  119. 1.2.17  "defaults.c"
  120.  
  121.   The variables that control the behaviour of the program have been 
  122. collected into a single file "defaults.c" you can change the behaviour by 
  123. editing this file and including the resulting object file in your program.
  124.  
  125. 1.2.18  Other things
  126.  
  127.   Again most of the changes for this release have not been documented, if 
  128. you are updating from an earlier version you should be careful. However the 
  129. good news is that
  130.  
  131.     Draw(rport,20,60);
  132.  
  133. will no longer trash your machine.
  134.  
  135.  Release 1.1
  136.  ***********
  137.  
  138. 1.1.1  Static variables
  139.  
  140.   The bug with static variables within functions has been fixed.
  141.  
  142. 1.1.2  AmigaDOS stubs
  143.  
  144.   The stubs for most AmigaDOS libraries have been added, the only 1.3 
  145. libraries that are not covered are "mathieeedoubbas.library" and 
  146. "mathieeedoubtrans.library".  The OpenLibrary() function has been extended 
  147. to, detect the opening of standard libraries, note the library pointer for 
  148. 'C' stubs, and cause the automatic closing of libraries when exit() is 
  149. called or the program terminates.
  150.  
  151. 1.1.3  Time functions
  152.  
  153.   Most of the functions in the ANSI 'C' time package have now been added 
  154. to the library, the only remaining missing function is mktime().
  155.  
  156. 1.1.4  Floating point
  157.  
  158.   Floating point numbers now work, the compiler will now recognise them, 
  159. the subtraction and division functions take their arguments in the correct 
  160. order, the printf() function can use floating point formats, and so on.  I 
  161. have not extended scanf() to cover floating point numbers yet, see "Bugs.doc".
  162.  
  163. 1.1.5  New functions
  164.  
  165.   A number of functions have been added to the 'C' library, these 
  166. include_div(), _ldiv(), abs(), atan2(), atexit(), bsearch(), fmod(), 
  167. frexp(), labs(), ldexp(), memchr(), memcmp(), memmove(), memset(), modf(), 
  168. perror(), qsort(), rand(), rename(), srand(), strerror(), strtod() and 
  169. tmpnam()see the "libc.doc" file for details of the latest set of functions 
  170. that are included in the library.
  171.  
  172. 1.1.6  New Definitions
  173.  
  174.   A number of definitions have been added to the 'C' include files, these 
  175. include atof(), atoi(), atol(), EDOM and ERANGE the "libc.doc" file gives 
  176. details.
  177.  
  178. 1.1.7  Locale and multibyte support
  179.  
  180.   Having decided not to support the locale and multibyte characters in 
  181. ANSI 'C' I have explained ways to emulate the functions in the "libc.doc" 
  182. file.
  183.  
  184. 1.1.8  File handling
  185.  
  186.   The file handling functions have been tidied up, this includes the 
  187. implementation of some previously missing functions, fgetpos(), freopen(), 
  188. fread(), fseek(), fsetpos(), fwrite(), ftell() and rewind().  In addition 
  189. the functions fopen() and fflush() have been extended to allow files to be 
  190. opened with all the ANSI file modes.  This has been made easier by the 
  191. fact binary files and text files are the same.
  192.  
  193. 1.1.9  strtol()
  194.  
  195.   The strtol() function was incorrectly defined to take a long value for 
  196. the base.  Once this was fixed the function would fail if a base of zero 
  197. was used, this has been fixed as well.
  198.  
  199. 1.1.10  Documentation
  200.  
  201.   The file "AmigaDOS.doc" has been added, this lists all the AmigaDOS 
  202. functions that are supported by this version of the 'C' library.  The file 
  203. "CHANGES", this file, lists all the changes from previous versions of NorthC.
  204.  
  205. 1.1.11  Make program
  206.  
  207.   A version of "make" has been created and added to the environment, some 
  208. documentation for the program has been created.  This is not a full 
  209. implementation, for example it does not support macros, however it does 
  210. most things that are required.
  211.  
  212. 1.1.12  GNU-GO
  213.  
  214.   The program "gnu-go" has been removed from the disk, if you are 
  215. interested in the game of "go" you can get the source from NorthC 1.0, 
  216. check out your local public domain supplier.  Fish 340 contains a copy, if 
  217. you can get the "unpack" script file to work.
  218.  
  219. 1.1.13  CRender
  220.  
  221.   An example program "CRender" has been created, this will provide a 
  222. simple display of a three dimensional object rotating in space.  The 
  223. directory "NorthC:examples/CRender" gives some documentation.
  224.  
  225. 1.1.14  Workbench directory
  226.  
  227.   When a program is called from the workbench the directory is now set 
  228. correctly.
  229.  
  230. 1.1.15  Other things
  231.  
  232.   Most of the changes for this release have not been documented, if you 
  233. are updating from an earlier version (either 1.0 or 0.1) you should be 
  234. careful. Beware of weirdness arising from the fact that all AmigaDOS 
  235. routines take long arguments,
  236.  
  237.     Draw(rport,20,60);
  238.  
  239. for example will almost certainly trash your machine.
  240.  
  241.  Release 1.0
  242.  ***********
  243.  
  244.   This was the initial public release of NorthC, it includes a 'C' 
  245. compiler and library.  Some of the numerous bugs and omissions are 
  246. documented in "Bugs.doc" and "libc.doc".
  247.